//using HDLogCenter.Infrastructure.ExternalServices;
//using HDLogCenter.Infrastructure.Models;
//using Microsoft.AspNetCore.Mvc;
//using Meilisearch;

//namespace HDLogCenter.Controllers
//{
//    public class MeiliSearchTestController : Controller
//    {
//        private readonly MeiliSearchService _meiliSearchService;

//        public MeiliSearchTestController(MeiliSearchService meiliSearchService)
//        {
//            _meiliSearchService = meiliSearchService;
//        }

//        [HttpGet]
//        public async Task<IActionResult> TestSearch()
//        {
//            try
//            {
//                // 测试基本搜索
//                var searchResult = await _meiliSearchService.SearchLogsAsync("测试", null, null, null, null, null, 1, 10);
                
//                return Json(new
//                {
//                    success = true,
//                    message = "搜索成功",
//                    data = searchResult,
//                    totalHits = searchResult.TotalHits
//                });
//            }
//            catch (Exception ex)
//            {
//                return Json(new
//                {
//                    success = false,
//                    message = $"搜索失败: {ex.Message}",
//                    error = ex.ToString()
//                });
//            }
//        }

//        [HttpGet]
//        public async Task<IActionResult> TestRawSearch()
//        {
//            try
//            {
//                // 直接使用 MeiliSearch 客户端进行原始搜索
//                var client = new MeilisearchClient("http://106.14.184.225:7700", "a3d7f49e5b7a4f998c8c2b55f3c8f1aa");
//                var index = client.Index("logs");

//                // 测试基本搜索
//                var searchResult = await index.SearchAsync<LogDto>("测试", new SearchQuery
//                {
//                    Limit = 10,
//                    AttributesToRetrieve = new[] { "*" }
//                });

//                return Json(new
//                {
//                    success = true,
//                    message = "原始搜索成功",
//                    data = searchResult,
//                    hits = searchResult.Hits,
//                    estimatedTotalHits = searchResult.Hits
//                });
//            }
//            catch (Exception ex)
//            {
//                return Json(new
//                {
//                    success = false,
//                    message = $"原始搜索失败: {ex.Message}",
//                    error = ex.ToString()
//                });
//            }
//        }

//        [HttpGet]
//        public async Task<IActionResult> TestIndexSettings()
//        {
//            try
//            {
//                var client = new MeilisearchClient("http://106.14.184.225:7700", "a3d7f49e5b7a4f998c8c2b55f3c8f1aa");
//                var index = client.Index("logs");

//                // 获取索引设置
//                var settings = await index.GetSettingsAsync();

//                return Json(new
//                {
//                    success = true,
//                    message = "获取索引设置成功",
//                    settings = settings
//                });
//            }
//            catch (Exception ex)
//            {
//                return Json(new
//                {
//                    success = false,
//                    message = $"获取索引设置失败: {ex.Message}",
//                    error = ex.ToString()
//                });
//            }
//        }

//        [HttpGet]
//        public async Task<IActionResult> InitializeIndex()
//        {
//            try
//            {
//                var result = await _meiliSearchService.InitializeIndexAsync();
                
//                return Json(new
//                {
//                    success = result,
//                    message = result ? "索引初始化成功" : "索引初始化失败"
//                });
//            }
//            catch (Exception ex)
//            {
//                return Json(new
//                {
//                    success = false,
//                    message = $"索引初始化失败: {ex.Message}",
//                    error = ex.ToString()
//                });
//            }
//        }
//    }
//}
